package com.fc.mall.controller;


import com.fc.mall.dto.CommonResult;
import com.fc.mall.dto.OssAccessInfoResult;
import com.fc.mall.dto.OssCallbackResult;
import com.fc.mall.dto.OssPolicyResult;
import com.fc.mall.service.impl.OssServiceImpl;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;

import javax.servlet.http.HttpServletRequest;

/**
 * Oss相关操作接口
 * Created by dobuy on 2018/4/26.
 */
@Controller
@Api(tags = "OssController",description = "Oss管理")
@RequestMapping("/aliyun/oss")
public class OssController {
	@Autowired
	private OssServiceImpl ossService;

	@ApiOperation(value = "oss上传签名生成")
	@RequestMapping(value = "/policy",method = RequestMethod.GET)
	@ResponseBody
	public Object policy() {
		OssPolicyResult result = ossService.policy();
		return new CommonResult().success(result);
	}

	@ApiOperation(value = "oss上传成功回调")
	@RequestMapping(value = "callback",method = RequestMethod.POST)
	@ResponseBody
	public Object callback(HttpServletRequest request) {
		OssCallbackResult ossCallbackResult = ossService.callback(request);
		return new CommonResult().success(ossCallbackResult);
	}

    @ApiOperation(value = "获取oss授权的信息")
    @RequestMapping(value = "/accessinfo",method = RequestMethod.GET)
    @ResponseBody
	public Object accessInfo(){
        OssAccessInfoResult result = ossService.getAccessInfo();
        return new CommonResult().success(result);
    }
}
